library(covid19census)
library(dplyr)
library(tidyr)
library(ggplot2)
library(broom)
library(psych)
library(stringr)
library(DataExplorer)
library(plotly)
theme_set(theme_bw())
t_us <- covid19census::getus_tests()
names(t_us)
t_us %>%
select(date, state, positive, negative, pending) %>%
pivot_longer(cols = c("positive", "negative", "pending"), names_to = "det_tests") %>%
ggplot(aes(date, log2(value), colour = det_tests)) +
geom_line() +
facet_wrap(vars(state)) +
scale_x_date(guide = guide_axis(check.overlap = TRUE, angle = 45)) +
theme(legend.position = "top",
legend.title = element_blank())

NA
NA
NA
t_us %>%
select(date,
state,
hospitalized_curr,
hospitalized_cumul
# icu_curr,
# icu_cumul
) %>%
pivot_longer(
cols = c(
"hospitalized_curr",
"hospitalized_cumul"
# "icu_curr",
# "icu_cumul"
),
names_to = "det_tests"
) %>%
ggplot(aes(date, log2(value), colour = det_tests)) +
geom_line() +
facet_wrap(vars(state)) +
scale_x_date(guide = guide_axis(check.overlap = TRUE, angle = 45)) +
theme(legend.position = "top",
legend.title = element_blank())

Same states have hospitalized current but not hospitalized cumulative and vicevera ????
** Possible different meaning of variables depending on the state **
t_us %>%
select(date,
state,
# hospitalized_curr,
# hospitalized_cumul
# icu_curr,
# icu_cumul
"ventilator_curr",
"ventilator_cumul"
) %>%
pivot_longer(
cols = c(
# "hospitalized_curr",
# "hospitalized_cumul"
"ventilator_curr",
"ventilator_cumul"
),
names_to = "det_tests"
) %>%
ggplot(aes(date, log2(value), colour = det_tests)) +
geom_line() +
facet_wrap(vars(state)) +
scale_x_date(guide = guide_axis(check.overlap = TRUE, angle = 45)) +
theme(legend.position = "top",
legend.title = element_blank())
t_us %>%
select(date,
state,
# hospitalized_curr,
# hospitalized_cumul
icu_curr,
icu_cumul
) %>%
pivot_longer(
cols = c(
# "hospitalized_curr",
# "hospitalized_cumul"
"icu_curr",
"icu_cumul"
),
names_to = "det_tests"
) %>%
ggplot(aes(date, log2(value), colour = det_tests)) +
geom_line() +
facet_wrap(vars(state)) +
scale_x_date(guide = guide_axis(check.overlap = TRUE, angle = 45)) +
theme(legend.position = "top",
legend.title = element_blank())

Lets see some totals
ggplotly(
t_us %>%
filter(date == max(date)) %>%
select(-hash, -date_checked, -fips) %>%
pivot_longer(cols = positive:total_test_increase, names_to = "metric", values_to = "value") %>%
ggplot(aes(state, value)) +
geom_col() +
facet_wrap(vars(metric), scales = "free_y", ncol = 1) +
scale_x_discrete(guide = guide_axis( angle = 90)),
height = 2000,
width = 600
)
NA
LS0tCnRpdGxlOiAiQ2hlY2tzIG9uIHRlc3RpbmciCm91dHB1dDogaHRtbF9ub3RlYm9vawotLS0KCgpgYGB7cn0KbGlicmFyeShjb3ZpZDE5Y2Vuc3VzKQpsaWJyYXJ5KGRwbHlyKQpsaWJyYXJ5KHRpZHlyKQpsaWJyYXJ5KGdncGxvdDIpCmxpYnJhcnkoYnJvb20pCmxpYnJhcnkocHN5Y2gpCmxpYnJhcnkoc3RyaW5ncikKbGlicmFyeShEYXRhRXhwbG9yZXIpCmxpYnJhcnkocGxvdGx5KQp0aGVtZV9zZXQodGhlbWVfYncoKSkKYGBgCgoKYGBge3J9CnRfdXMgPC0gIGNvdmlkMTljZW5zdXM6OmdldHVzX3Rlc3RzKCkKYGBgCgpgYGB7ciB3YXJuaW5nPUZBTFNFfQpuYW1lcyh0X3VzKQpgYGAKCgpgYGB7ciwgd2FybmluZz1GQUxTRSwgZmlnLmhlaWdodD01LCBmaWcud2lkdGg9NX0KdF91cyAlPiUgCiAgc2VsZWN0KGRhdGUsIHN0YXRlLCBwb3NpdGl2ZSwgbmVnYXRpdmUsIHBlbmRpbmcpICU+JSAKICBwaXZvdF9sb25nZXIoY29scyA9IGMoInBvc2l0aXZlIiwgIm5lZ2F0aXZlIiwgInBlbmRpbmciKSwgbmFtZXNfdG8gPSAiZGV0X3Rlc3RzIikgJT4lIAogIAogIGdncGxvdChhZXMoZGF0ZSwgbG9nMih2YWx1ZSksIGNvbG91ciA9IGRldF90ZXN0cykpICsKICAgIGdlb21fbGluZSgpICsKICAgIGZhY2V0X3dyYXAodmFycyhzdGF0ZSkpICsKICAgIHNjYWxlX3hfZGF0ZShndWlkZSA9IGd1aWRlX2F4aXMoY2hlY2sub3ZlcmxhcCA9IFRSVUUsIGFuZ2xlID0gNDUpKSArCiAgICB0aGVtZShsZWdlbmQucG9zaXRpb24gPSAidG9wIiwKICAgICAgICBsZWdlbmQudGl0bGUgPSBlbGVtZW50X2JsYW5rKCkpIAogIAoKCmBgYAoKCgpgYGB7ciB3YXJuaW5nPUZBTFNFLCBmaWcuaGVpZ2h0PTUsIGZpZy53aWR0aD01fQp0X3VzICU+JQogIHNlbGVjdChkYXRlLAogICAgICAgICBzdGF0ZSwKICAgICAgICAgaG9zcGl0YWxpemVkX2N1cnIsCiAgICAgICAgIGhvc3BpdGFsaXplZF9jdW11bAogICAgICAgICAjIGljdV9jdXJyLAogICAgICAgICAjIGljdV9jdW11bAogICAgICAgICAKICAgICAgICAgKSAlPiUKICBwaXZvdF9sb25nZXIoCiAgICBjb2xzID0gYygKICAgICAgImhvc3BpdGFsaXplZF9jdXJyIiwKICAgICAgImhvc3BpdGFsaXplZF9jdW11bCIKICAgICAgIyAiaWN1X2N1cnIiLAogICAgICAjICJpY3VfY3VtdWwiCiAgICApLAogICAgbmFtZXNfdG8gPSAiZGV0X3Rlc3RzIgogICkgJT4lCiAgCiAgZ2dwbG90KGFlcyhkYXRlLCBsb2cyKHZhbHVlKSwgY29sb3VyID0gZGV0X3Rlc3RzKSkgKwogIGdlb21fbGluZSgpICsKICBmYWNldF93cmFwKHZhcnMoc3RhdGUpKSArCiAgc2NhbGVfeF9kYXRlKGd1aWRlID0gZ3VpZGVfYXhpcyhjaGVjay5vdmVybGFwID0gVFJVRSwgYW5nbGUgPSA0NSkpICsKICB0aGVtZShsZWdlbmQucG9zaXRpb24gPSAidG9wIiwKICAgICAgICBsZWdlbmQudGl0bGUgPSBlbGVtZW50X2JsYW5rKCkpCgpgYGAKU2FtZSBzdGF0ZXMgaGF2ZSBob3NwaXRhbGl6ZWQgY3VycmVudCBidXQgbm90IGhvc3BpdGFsaXplZCBjdW11bGF0aXZlIGFuZCB2aWNldmVyYSA/Pz8/CgoqKiBQb3NzaWJsZSBkaWZmZXJlbnQgbWVhbmluZyBvZiB2YXJpYWJsZXMgZGVwZW5kaW5nIG9uIHRoZSBzdGF0ZSAgKioKCgpgYGB7ciB3YXJuaW5nPUZBTFNFLCBmaWcuaGVpZ2h0PTUsIGZpZy53aWR0aD01fQp0X3VzICU+JQogIHNlbGVjdChkYXRlLAogICAgICAgICBzdGF0ZSwKICAgICAgICAgIyBob3NwaXRhbGl6ZWRfY3VyciwKICAgICAgICAgIyBob3NwaXRhbGl6ZWRfY3VtdWwKICAgICAgICAgIyBpY3VfY3VyciwKICAgICAgICAgIyBpY3VfY3VtdWwKICAgICAgICAgInZlbnRpbGF0b3JfY3VyciIsCiAgICAgICAgICJ2ZW50aWxhdG9yX2N1bXVsIgogICAgICAgICAKICAgICAgICAgKSAlPiUKICBwaXZvdF9sb25nZXIoCiAgICBjb2xzID0gYygKICAgICAgIyAiaG9zcGl0YWxpemVkX2N1cnIiLAogICAgICAjICJob3NwaXRhbGl6ZWRfY3VtdWwiCiAgICAgICAgInZlbnRpbGF0b3JfY3VyciIsCiAgICAgICAgICJ2ZW50aWxhdG9yX2N1bXVsIgogICAgKSwKICAgIG5hbWVzX3RvID0gImRldF90ZXN0cyIKICApICU+JQogIAogIGdncGxvdChhZXMoZGF0ZSwgbG9nMih2YWx1ZSksIGNvbG91ciA9IGRldF90ZXN0cykpICsKICBnZW9tX2xpbmUoKSArCiAgZmFjZXRfd3JhcCh2YXJzKHN0YXRlKSkgKwogIHNjYWxlX3hfZGF0ZShndWlkZSA9IGd1aWRlX2F4aXMoY2hlY2sub3ZlcmxhcCA9IFRSVUUsIGFuZ2xlID0gNDUpKSArCiAgdGhlbWUobGVnZW5kLnBvc2l0aW9uID0gInRvcCIsCiAgICAgICAgbGVnZW5kLnRpdGxlID0gZWxlbWVudF9ibGFuaygpKQoKYGBgCmBgYHtyIHdhcm5pbmc9RkFMU0UsIGZpZy5oZWlnaHQ9NSwgZmlnLndpZHRoPTV9CnRfdXMgJT4lCiAgc2VsZWN0KGRhdGUsCiAgICAgICAgIHN0YXRlLAogICAgICAgICAjIGhvc3BpdGFsaXplZF9jdXJyLAogICAgICAgICAjIGhvc3BpdGFsaXplZF9jdW11bAogICAgICAgICBpY3VfY3VyciwKICAgICAgICAgaWN1X2N1bXVsCiAgICAgICAgIAogICAgICAgICApICU+JQogIHBpdm90X2xvbmdlcigKICAgIGNvbHMgPSBjKAogICAgICAjICJob3NwaXRhbGl6ZWRfY3VyciIsCiAgICAgICMgImhvc3BpdGFsaXplZF9jdW11bCIKICAgICAgImljdV9jdXJyIiwKICAgICAgImljdV9jdW11bCIKICAgICksCiAgICBuYW1lc190byA9ICJkZXRfdGVzdHMiCiAgKSAlPiUKICAKICBnZ3Bsb3QoYWVzKGRhdGUsIGxvZzIodmFsdWUpLCBjb2xvdXIgPSBkZXRfdGVzdHMpKSArCiAgZ2VvbV9saW5lKCkgKwogIGZhY2V0X3dyYXAodmFycyhzdGF0ZSkpICsKICBzY2FsZV94X2RhdGUoZ3VpZGUgPSBndWlkZV9heGlzKGNoZWNrLm92ZXJsYXAgPSBUUlVFLCBhbmdsZSA9IDQ1KSkgKwogIHRoZW1lKGxlZ2VuZC5wb3NpdGlvbiA9ICJ0b3AiLAogICAgICAgIGxlZ2VuZC50aXRsZSA9IGVsZW1lbnRfYmxhbmsoKSkKCmBgYAoKCgpMZXRzIHNlZSBzb21lIHRvdGFscwpgYGB7ciB3YXJuaW5nPUZBTFNFLCBmaWcuaGVpZ2h0PTEwLCBmaWcud2lkdGg9Nn0KZ2dwbG90bHkoCnRfdXMgJT4lIAogIGZpbHRlcihkYXRlID09IG1heChkYXRlKSkgJT4lIAogIHNlbGVjdCgtaGFzaCwgLWRhdGVfY2hlY2tlZCwgLWZpcHMpICU+JQogIHBpdm90X2xvbmdlcihjb2xzID0gcG9zaXRpdmU6dG90YWxfdGVzdF9pbmNyZWFzZSwgbmFtZXNfdG8gPSAibWV0cmljIiwgdmFsdWVzX3RvID0gInZhbHVlIikgJT4lIAogIGdncGxvdChhZXMoc3RhdGUsIHZhbHVlKSkgKwogICAgZ2VvbV9jb2woKSArCiAgICBmYWNldF93cmFwKHZhcnMobWV0cmljKSwgc2NhbGVzID0gImZyZWVfeSIsIG5jb2wgPSAxKSArIAogICAgc2NhbGVfeF9kaXNjcmV0ZShndWlkZSA9IGd1aWRlX2F4aXMoIGFuZ2xlID0gOTApKSwKICAgIGhlaWdodCA9IDIwMDAsCiAgICB3aWR0aCA9IDYwMAopCgpgYGAKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgo=